Text copied to clipboard!

Title

Text copied to clipboard!

Dependent Type Programmer

Description

Text copied to clipboard!
We are looking for a Dependent Type Programmer to join our technology team and be responsible for designing, implementing, and maintaining software using dependent types. The person in this role will work on advanced systems where type safety and formal code verification play a key role. Dependent type programming is an approach that allows expressing more precise program properties at compile time. This enables the creation of more reliable and secure software. We are looking for someone with experience in languages such as Idris, Agda, Coq, or Haskell (with dependent type extensions), and who understands the basics of type theory and mathematical logic. Your responsibilities will include designing and implementing components of IT systems that use dependent types to ensure correctness. You will also collaborate with the R&D team to develop new methods of formal code verification and support other developers in adopting dependent type techniques in their projects. The ideal candidate is someone passionate about mathematics, logic, and functional programming, who can think abstractly and solve complex problems. We offer flexible working hours, remote work opportunities, participation in R&D projects, and access to the latest tools and technologies.

Responsibilities

Text copied to clipboard!
  • Design and implement systems using dependent types
  • Perform formal verification of source code
  • Collaborate with the research and development team
  • Create technical documentation
  • Participate in code reviews
  • Train other developers in dependent type techniques
  • Analyze requirements and design system architecture
  • Optimize existing solutions

Requirements

Text copied to clipboard!
  • Experience with Idris, Agda, Coq, or Haskell
  • Knowledge of type theory and mathematical logic
  • Ability to work in a team
  • Good command of English
  • Analytical thinking skills
  • Degree in computer science or mathematics
  • Familiarity with formal verification tools
  • Experience in functional programming

Potential interview questions

Text copied to clipboard!
  • What experience do you have with dependent type languages?
  • Have you worked with Coq or Agda before?
  • What formal code verification techniques do you know?
  • Can you explain the difference between dependent and regular types?
  • What projects have you completed using dependent types?
  • Do you have experience working on research projects in a team?
  • What tools supporting dependent typing are you familiar with?
  • Can you create formal documentation for code?